package com.witmore.skyline.web.enums;

/**
 * 时间精度枚举
 * 用于控制缓存key中时间参数的精度级别
 * 
 * Author: 豆子高
 * Date: 2025/10/24
 */
public enum TimePrecision {
    
    /**
     * 秒级精度 - 保持原始时间不变
     */
    SECOND,
    
    /**
     * 分钟级精度 - 将秒和毫秒清零
     * 例如: 2025-10-24 14:30:15 -> 2025-10-24 14:30:00
     */
    MINUTE,
    
    /**
     * 小时级精度 - 将分钟、秒和毫秒清零
     * 例如: 2025-10-24 14:30:15 -> 2025-10-24 14:00:00
     */
    HOUR,
    
    /**
     * 天级精度 - 将小时、分钟、秒和毫秒清零
     * 例如: 2025-10-24 14:30:15 -> 2025-10-24 00:00:00
     */
    DAY,
    
    /**
     * 缓存窗口对齐 - 基于缓存时间进行窗口对齐
     * 将时间对齐到缓存窗口的边界，确保同一窗口内的请求使用相同的缓存key
     * 例如: 5分钟缓存，17:15:23 -> 17:15:00，17:17:45 -> 17:15:00
     */
    CACHE_WINDOW
}
